<?php

class DomoHelper extends CApplicationComponent {
    /*
     * Determine si le visiteur est connecté en interne ou en externe
     * (pour le chargement des librairies externes, par ex)
     * @return boolean
     */

    public function isExterne() {
	  return isset($_SERVER['HTTP_X_FORWARDED_FOR']);
    }

    /*
     * Chargement de la librairie JQuery
     * (en tenant compte du surf en externe ou interne)
     */

    public function loadJquery() {
	  $version = '2.0.3';

	  // External load of jquery if we are not on the local network (ie through proxy)
	  $jqueryUrl = $this->isExterne() ? 'http://ajax.googleapis.com/ajax/libs/jquery/' . $version . '/jquery.min.js' : Yii::app()->request->baseUrl . '/js/libs/jquery-' . $version . '.min.js';
	  Yii::app()->clientScript->registerScriptFile($jqueryUrl, CClientScript::POS_HEAD);
	  Yii::app()->clientScript->scriptMap = array(
		'jquery.js' => $jqueryUrl,
	  );
    }

    /*
     * Calcule le nombre de minutes entre 2 dates
     */

    function dateDiff($dte1, $dte2) {
	  $ts1 = strtotime($dte1);
	  $ts2 = strtotime($dte2);
	  return round(($ts1 - $ts2) / 60, 0);
    }
    
    
    /*
     * Récupére les paramètres de date et les traite pour récupérer une date de début et une date de fin
     * 
     * @param $dte date date du jour à calculer
     * @param $dted date date de début (pour les calculs sur un intervale
     * @param $dtef date date de fin (pour les calculs sur un intervale
     * 
     * @return array date de début et date de fin 
     */
    function checkDateArg($dte, $dted, $dtef){

	  // Une date est saisie
	  if (!is_null($dte)) {
		$dted = $dte;
		$dtef = $dte;
	  }

	  // Sinon, si tous les champs sont null, on prend les 3 derniers jours
	  elseif (is_null($dted) && is_null($dtef)) {

		$jmoins3 = time() - (2 * 24 * 3600);
		$dted = date('Y-m-d', $jmoins3);
		$dtef = date('Y-m-d');
	  }

	  // Si l'une des 2 dates est null => erreur
	  elseif (is_null($dted) xor is_null($dtef)) {
		echo "l'une des deux dates de début ou de fin n'est pas renseignée.";
		$dted = null;
		$dtef = null;
	  }
	  
	  // Retour de la date de début et date de fin
	  return array($dted, $dtef);
    }

}
